$(function () {
  //防止页面后退
  history.pushState(null, null, document.URL)
  window.addEventListener('popstate', function () {
    history.pushState(null, null, document.URL)
  })

  //绑定排序文本框ajax
  $('input.sort').blur(indexSort)
  //绑定刷新按钮
  $('a.refresh').click(function () {
    location.reload()
    return false
  })

  // 弹窗公共方法
  $('.layer-window').click(function () {
    var that = $(this)
    top.layer.open({
      type: 2,
      title: $(this).data('title'),
      shadeClose: true,
      shade: 0.8,
      area: ['80%', '80%'],
      content: $(this).data('url'), //iframe的url
      maxmin: true, //开启最大化最小化按钮
      end: function (e) {
        if (that.attr('reload')) {
          layer.load(1, {
            shade: [0.4, '#77787b'], //0.1透明度的白色背景
          })
          window.location.reload()
        }
      },
    })
  })

  // 绑定删除ajax方法
  $('.multi-operate').click(function () {
    var that = $(this)
    var url = $(this).attr('href')
    var method = $(this).attr('data-method')
      ? $(this).attr('data-method')
      : 'post'
    var paramSign = that.attr('param-sign') ? that.attr('param-sign') : 'id'
    var ids = []
    // $('tr td input[type=checkbox]:checked').each(function () { //这里把所有的checkbox都装进来是不合适的，已经修正
    $('tr td input[name=\'selection[]\']:checked').each(function () {
      ids.push($(this).val())
    })
    if (ids.length <= 0) {
      layer.alert(tips.noItemSelected, {
        title: tips.error,
        btn: [tips.ok],
        icon: 2,
        skin: 'layer-ext-moon',
      })
      return false
    }
    ids = ids.join(',')
    layer.confirm(
      $(this).attr('data-confirm') + '<br>' + paramSign + ': ' + ids, {
        title: tips.confirmTitle,
        btn: [tips.ok, tips.cancel], //按钮
      }, function () {//ok
        if (that.hasClass('jump')) {//含有jump的class不做ajax处理，跳转页面
          var jumpUrl = url.indexOf('?') !== -1 ? url + '&' + paramSign + '=' +
            ids : url + '?' + paramSign + '=' + ids
          location.href = jumpUrl
          return false
        }
        var data = {}
        data[paramSign] = ids
        $.ajax({
          'url': url,
          'dataType': 'json',
          'type': method,
          'data': data,
          beforeSend: function () {
            layer.load(2, {
              shade: [0.1, '#fff'], //0.1透明度的白色背景
            })
          },
          'success': function (data) {
            if (that.attr('reload')) {
              location.reload()
            }
          },
          'error': function (jqXHR, textStatus, errorThrown) {
            layer.alert(jqXHR.responseJSON.message, {
              title: tips.error,
              btn: [tips.ok],
              icon: 2,
              skin: 'layer-ext-moon',
            })
          },
          'complete': function () {
            layer.closeAll('loading')
          },
        })
      }, function (index) {
        layer.close(index)
      })
    return false
  })

})

/**
 * 弹出内容层 函数
 * @param url
 * @param obj
 */
function viewLayer (url, obj) {
  return top.layer.open({
    type: 2,
    title: obj.attr('title'),
    maxmin: true,
    shadeClose: true, //点击遮罩关闭层
    area: ['800px', '520px'],
    content: url,
  })
}

/**
 * 绑定排序ajax请求函数
 * @returns {boolean}
 */
function indexSort () {
  layer.load(2, {
    shade: [0.1, '#fff'], //0.1透明度的白色背景
  })
  var data = {}
  var name = $(this).attr('name')
  data[name] = $(this).val()
  var sortHeader = $('th[sort-header=1]')
  $.ajax({
    url: sortHeader.attr('action'),
    method: sortHeader.attr('method'),
    data: data,
    dataType: 'json',
    type: 'post',
    beforeSend: function () {
      layer.load(2, {
        shade: [0.1, '#fff'], //0.1透明度的白色背景
      })
    },
    success: function (data) {
      layer.msg(data.message, { time: 400 })
      if (sortHeader.attr('reload')) {
        location.reload()
      }
    },
    error: function (jqXHR, textStatus, errorThrown) {
      layer.alert(jqXHR.responseJSON.message, {
        title: tips.error,
        btn: [tips.ok],
        icon: 2,
        skin: 'layer-ext-moon',
      })
    },
    complete: function () {
      layer.closeAll('loading')
    },
  })
  return false
}


